# 导入 Jinja2 模板引擎
from starlette.templating import Jinja2Templates

# 创建模板引擎实例，指定模板目录
templates = Jinja2Templates(directory="templates")


# 定义用户页面处理函数
async def user_page(request):
    # 从路径参数中获取用户 ID
    user_id = request.path_params["user_id"]
    # 渲染模板并返回响应
    return templates.TemplateResponse(
        "user.html", {"request": request, "user_id": user_id}
    )


# 定义主函数
def main():
    # 导入必要的模块
    from starlette.applications import Starlette
    from starlette.routing import Route
    from starlette.responses import PlainTextResponse
    import uvicorn

    # 定义首页处理函数
    async def homepage(request):
        return PlainTextResponse("模板渲染示例")

    # 创建应用实例
    app = Starlette(
        routes=[Route("/", homepage), Route("/users/{user_id:int}", user_page)]
    )
    # 启动服务器
    uvicorn.run(app, host="127.0.0.1", port=8000)


# 脚本入口
if __name__ == "__main__":
    main()
